Out of the 3 games, I probably played Overwatch the most, followed closely by Hearthstone, but the amount of money I invested in Hearthstone is easily 3-4x the initial price I paid for OW. I got fed up of the "pay or fall behind" nature of Hearthstone and stopped playing a long time ago though.
Hearthstone should be compared with other computer games, not with MTG & co.
I always thought a much more modern scenario would've been if they put like a code or something on physical packs so you could buy them once and have the same cards in both digital and physical form.
You can be perfectly competitive without playing arena or buying packs. I haven't paid a cent for the past 2 years and can play all the competitive decks I want in every meta. Blizzard has been very good with bumping up the rewards you get from playing normally.