This is how most services that act as escrows work.
@op, the service you are using must give you 2 xpubs and request 1 xpub. Create a new 2-of-3 multisignature wallet (here is how to do it with Electrum: https://electrum.readthedocs.io/en/latest/multisig.html || just replace require 2 of 2 by require 2 of 3 and enter the two xpubs you were given) then give the xpub generated by your wallet to the service.
When you request a withdrawal, the service will send you a partially signed raw transaction which you have to import into the wallet you created, sign it then broadcast it.