Hi,
Having 3 vcpu for a VM is not a problem and it is a valid configuration. The Best practice is to mimic the underlying hardware so if you have 1x4core CPU, so for a VM I would go for 1 virtual socket and 4 cores per socket and not 2 virtual socket with 2 cores per socket.
If you use NUMA system, it is better to configure the number of vCPUs to be equal or less than the number of physical cores on a single NUMA node otherwise you will have higher memory latency times
Regards
Pierre