It can't be done. AWS S3 doesn't speak SSH. Its requests must be signed by the AWS Signature process, which uses IAM key, secret, and session token.
If your s3 action is running on an EC2 instance, you can use an instance profile to provide short term access credentials for your application. Same for ecs including fargate and lambda.
If you're running the script as a human user, you can use aws sso or IAM federation to move from long lived access keys to short lived credentials.
Or, you could use something like code pipeline to automatically operate on your behalf based on changes coming from version control like Github, which would remove your need for AWS access credentials, instead delegating that access to code pipeline or something in AWS. Hard to say much about that option without knowing more about your use case.
Otherwise, you're stuck handling the credentials. And in my humble opinion, you should consider that 90 day rotation an acceptable cost for the security it provides.
The reasoning behind using this method is to bypass the new AWS requirement that requires IAM credentials to be rotated every 90 days
This sounds like a requirement your account imposes itself - and a good one. I'm not aware of any such requirement being imposed by AWS. Can you provide a source for your assertion?