I assume from the information you have given that you are using Mcp23017 and MCP23008 devices. These have 8 addresses that are usable, so you don’t need any external hardware to connect them.
I recommend you use some kind of buffer or level shifter for this. 1-3m of wire could draw high amounts of current and damage your Pi. Though you have already stated you don’t want to buy such things, but I have warned you.
There are 2 I2C buses on a Raspberry Pi, I2C0 is used for the HAT memory chip but can still be used by software. Just connect some to one bus and some to the other and make sure your addresses are set correctly.
You will need to pay special attention when making your cables. Bring only the SDA and SCL lines from the Pi, along with ground. Twist SDA and a ground wire together the whole length, and do the same with SCL with a different ground wire. You will need to connect the ground wires at the remote end as well. Use power at the remote end, don’t bring it from the Pi.