You haven't said how your VPC is connecting to S3. For example, if you're using a NAT Gateway then you may be hitting throughput limits there rather than at the instance level.
My suggestion would be to create a S3 Gateway Endpoint in your VPC and see if that improves the situation.
VPC - Public/Private Subnets - Unable to access from internetasked 4 years ago
Benefits to S3 cross-region access with VPC peered interface endpoints vs. public internet using NAT gateways?Accepted Answerasked 9 months ago
Getting rate limited massively downloading from S3 (AWS public datasets)asked 10 months ago
Access public apigateway API via VPC endpointAccepted Answerasked 5 months ago
Why does ELB need one public IP address for each public subnet?asked 3 years ago
Private Instance and Public ELB HTTPS Problem.asked 2 months ago
How to get traffic from a public API Gateway to a private one?Accepted Answerasked 5 months ago
Why VPC with a "public subnet only and AWS Site-to-Site VPN access" cannot be configured?Accepted Answerasked 4 months ago
NAT Gateway w/ Elastic IP in Public + Private VPC with AWS Workspaces ..asked 2 years ago
Use of VPC times out when downloading source from s3.Accepted Answerasked 3 years ago