The documentation is sh*t in this area, both Cisco Meraki and Microsoft.
First, the Microsoft function updates the next hop in any tagged route tables. So you can use any design in Azure where you can have a static route that can point at one vMX, and where you (by only changing the next hop) have it go to the other VMX.
A critical requirement is that the subnet that the VMX go into can not be used by anything you are trying to access (so the VMX can not go into the same subnet as a server you want to access).
In the last deployment I did - the client had everything they wanted to access in a single VNET, so I just added a brand new subnet into that same VNET to put both VMX into.
Bearing in mind the simple requirement for being able to change the next hop - you can have same the same VNET as everything else, one brand new VNET for both VMX, or two separate VNETs, one for each VMX. Bear in mind if you create new VNETs you will need to configure VNET peering.
You should add a single route into the VNET route table system for each Meraki subnet via the "primary" VMX. The Microsoft function will then change the next hop address to point to the secondary VMX on the primary VMX failing. note that it only changes the next hop address back again if the secondary VMX fails.