I have set up pfsense as a dynamic SOCKS proxy, OpenVPN server and PPTP server long ago using VMplayer for testing and it worked fine, although adds zero security. I was just in it to test out the various functions at that point. I assume squid will work also this way. (also a good way to send someone a ready made VPN if you have no physical access to their system but do have remote desktop)
What I did is install wmplayer.
Install the latest full release (like 2.03 today)
Make the VM so that :
Network is bridge and replicating physical NIC state for WAN.
Another virtual network interface to use as lan. (Not Bridged!)
1 core (2 is better)
512MB ram (you can experiment with less)
After I booted, I'm locked out because I only have a WAN but no LAN I can access unless I make another VM of windows or something to use a virtual interface. More resources… So, no.
I went into the VM shell command interface.
pfctl -d
Now the firewall is down, so I can go in at the WAN interface of your pfsense (assigned by DHCP by your other router) and deactivate "block private IPs on WAN" and I can also open my port 80 and 443 3128 and whatever other service ports you will need in the firewall rules under the WAN interface tab.
Disable DNS Rebinding Checks also.
Back to the pfsense command line interface
pfctl -e
Now your PFsense VM interface is accessible through its wan via your physical computers. You can set up VPN, Proxy or whatever services you like.
You can use it as a proxy for anything on the LAN or from outside on the internet also. If you plan to access your vmplayer install of pfsense from the internet, you can you just have to forward ports from your first router to whatever IP pfsense gets from it.
Stephenw10's way is better than this if your hardware supports VLANs and his way also frees up some hardware.
But you will need a better hypervisor than vmplayer.
For me this worked fine but it was just for testing for me until I decided to just install pfsense on hardware as my router/firewall.
Try that last part out. It works best. Just replacing sonicwall with pfsense in the end is better.