Also take note that fees depend on two major things which are the address type (sender) and most importantly the number of UTXO ( more like the number of outputs and inputs required to complete the transaction) the more it is the higher the size. So you can control the fee rate but size depends on your UTXOs.
AFAIK, Legacy addresses don't contain witness field, or should i say, don't support. so both its signature and pK are placed inside the scriptsig, which is then used to know the tx size and calculate the fees. Unlike the other two type of segwit addresses that has witness field, while their difference in how they push their data makes them distinct from the other. I have once asked why Native SegWit (Bech32) addresses have lower tx fee than SegWit (P2SH), and here is one of the best explanation i got for those that are interested...
Low tx fees - Technical difference between SegWit and Native SegWit addresses?.