By default, USRP gives you data in 16bit integer format (x2, for I and Q). GNU Radio's complex data type uses IEEE754 single precision (x2, for I and Q). The data type is converted by UHD (the USRP driver). Each IEEE754 data point requires 32bit of storage (or memory, bandwidth, etc). This is why the data size is doubled.
You can set the UHD block to output the raw int16 (interleaved) data, or you can convert back the GNU Radio's complex data type to a int16 based format and then send them over TCP (*make sure that you re-scale the I-Q data, as the complex data is normalized to [0,1] by UHD).