I/O expanders- CAN & I2C
Which is the best possible way without compromising the cost?

Your cost will go up, if you want to replace I2C with CAN.  An I/O expander with CAN interface is &quot;simply&quot; a microcontroller with a CAN interface.  A bridge between CAN and I2C is also a microcontroller with a CAN interface.  So, you are looking at a cost of a CAN bus driver IC, cost of a microcontroller itself (maybe with a crystal), labor cost of programming that microcontroller.
Having said that, I do understand why replacing an overextended I2C with CAN may be a right idea.
As a side benefit, you can have a degree of local control and processing at the periphery.  Plus lots of useful peripherals which come on microcontrollers.