You can do a few things.
1. Set up your workstation to be behind that vm in general. I do something similar with virtualbox on one of my work computers, and I have virtualbox using my NIC as the WAN for pfsense, and I have another virtual NIC that is 'LAN' or equivalent that my laptop uses as if it was it's only network interface. The pfsense VM's wan gets whatever is at the physical ethernet port of the machine, and then my laptop gets it's route through a virtual NIC and is behind pfsense.
Yes, pfsense has to be booted before packets flow at all, so that may not be ideal. Works great for me, pfsense boots fast enough it makes almost no difference. Once you do this, you can usually pass whatever captive portal exists because you are natted behind the MAC and IP they are seeing.
2. Create a script that uses cURL to do a POST or whatever action is normally taken to get you into the system. For example, pfsense captive portal just wants a POST to a certain URL (when it's configured with no auth), and so you could do something like
curl --data "" http://firewall.ip:port/
At that point, you figure out how long before they idle you off, and schedule your script to run accordingly.
3. Clone the MAC address of a device that already passed the hotel's auth
This is a little trickier, I use an old smartphone for this. Basically, use the mobile device to pass the portal, then make your pfsense WAN interface bound to that MAC. I've done this many many times over the years with varying success.