If you want to avoid all third parties, you need to run a node yourself. Download bitcoin-core and let it sync might take a day or two depending on your machine.
You can import your paper wallet by taking the WIF private key and using the importprivkey command in the bitcoin console. Note the rescan will take a while, but once it is done you can spend to any ...
No matter which wallet you use, use one with offline transaction functionality. That's what you need.
Use Electrum offline: https://electrum.readthedocs.io/en/latest/coldstorage.html?highlight=usb
You need two Electrums. You can use the watch-only one on your daily computer, and the air-gapped one on one Tails Linux burned CD.
You may instead generate a raw ...
You can do it manually with highly secure way:
Get UTXO's of coins that you want to transfer (TX Hash, Value in Satoshi and No of output).
Form the unsigned transaction using outputs from the previous paragraph as inputs to your's new receiving address. Remember that the value of new outputs must be less than summary value of inputs on the estimated fee ...
Use bitcoin core: https://bitcoincore.org/en/download/
If interested to review and compile yourself, follow the instructions mentioned here: https://jonatack.github.io/articles/how-to-compile-bitcoin-core-and-run-the-tests