For non-production instance we have all the P6 components like P6, TM, WS, BPM, OBIEE installed on a single VM with 200GB disk space, 20GB RAM and 10GB swap space. We have Contract Management also installed on this.
But I would say you should split it into two VM's BPM and OBIEE can go on one VM with min 8GB RAM and P6 can be on another VM with 8 GB RAM. If you are considering CM also then it can also go along with P6 on the same VM.
You should also refer to below documents for smooth installation