If the developer doesn't offer a 'VPP' version of the app - one they include the subscription or in-app content in - then the only way I have found is to tie the subscription to an AppleID. It can get a bit obnoxious when you have a large pool of users that need to use subscription or in-app purchased content.
I am about to tackle this scenario also where previously we have gotten away with only pushing VPP managed apps not requiring any kind of subscription, I now have to provision 2 apps that do have subscription requirements and we don't want the user to use their own Apple ID.
So it seems the route is to create managed Apple ID, push the app via VPP and then tie the subscriptions into the managed Apple ID, as stated above.
When it comes to upgrading the iCloud storage amount, I guess this has to be done on the device directly also.