The platform holders make a profit when publishers sell games on their platforms.
The platform holders don't provide servers.
Server software should be given or sold to consumers.
There shouldn't be a fee to play online.
Oh no, you're wrong.
In the case of Xbox Live, MS does provide servers and that's partly why you see their online games remain active longer. EA is an exception as they fought to run their own servers, but they also take older games offline.
Then consider the massive amount of bandwidth being used by paying and non-paying users to download games, uploading/downloading videos, cloud saves, etc. Some publishers actually complained about having to pay bandwidth fees on PS3.
We aren't just paying to play online anymore either, the "free" games is a huge benefit of subscribing.
In a nut shell, services like Xbox Live makes it easier/cheaper for game to have online play, it covers the overhead of online services, and you get a bunch of "free" games.
I subscribe to both PS+ and XBL because I perceive them as a good value. However, I haven't actually paid for XBL in years thanks to Bing rewards and I always buy PS+ when I see a discount, eBay coupon, etc.
Lastly, it worth considering these subscription services help fund the platforms/games. I'm hoping Xbox Gamepass succeeds in the funding more games.