Actually to prove one transaction in a block I think you only need your transaction data and a few "sibling" hashes from the Merkle tree to prove your transaction's inclusion to the root.
You don't actually need the hashes of other full transactions rather just the specific hashes needed for your branch. For a block with thousands of transactions this proof is really tiny probably only a few hundred bytes compared to the megabytes of the full block.