Would it be acceptable to split S3.php such that the client code only still need to include the one S3.php (for those no-composer situations)?
What I am suggesting is to split classes into their own files (ClassName.php) and S3.php would always require_once these files. A bit clunky, but makes it easier to maintain the code.
Given a choice I would prefer to PSR-4 -ise it with namespaces etc.