Probably better to go ahead and pay the price for Server 2016, PDM 2019 is the last to support/install on Server 2012R2.
Performance wise, you're never going to get the same performance out of a VM that you will from bare metal. That being said you'll probably never notice the difference either. We run ours out of a data center 5ms away and don't have any noticeable issues. We tried running from one 35ms away and it was a bit of a nightmare. The archive server and database server don't talk to each other very much so they can easily be multi-hosted. I've rarely run into an instance where the machine hosting SQL/EPDM was the cause of performance issues, even in orgs with several hundred engineers so don't get too caught up on it. Just make sure you're SQL server has access to SSD's or preferably NVMe disks, and keep up with the maintenance on your DB's and you should be fine.
In the past I had VMs running on the Amazon cloud (IT had it setup for a private hosting configuration). The servers were in California and we didn't have issues connecting to them. The users connected to their local archive servers not the main server at AWS. The data server worked really good and didn't have any issues. IT even eventually lowered me from 6 cores down to 4 because it never used that many.
Having the servers on VMs means that you can do things like have fail over recovery. That way if the hardware goes down they can immediately bring it back up on different hardware. SQL server keeps as much data in memory that it can, so make sure you put a limit on the amount it can use so that it doesn't make Windows run out. I saw in the past where SQL used most of it and Windows got bogged down using swap memory.
There are some stipulations on the setup of the VM for the SNL but I don't think those apply to the Archive and data server. I don't have access to those stipulations anymore since that was left with my previous employer. If you are going to have the archive server that the user use at an offsite location make sure it is close and try to get a LAN connection to it so that the large data sets can be gotten quickly.