Why are pull-up resistors required to be connected to the 2 lines of I2C?
UART and SPI have dedicated push-pull drivers - this means there can be problems when two drivers are connected to the same line because the outputs "clash". The architecture of IIC is that drivers are open-collector (or open-drain) and they can only pull the line down. Because of this, resistors are used to pull the line back up when a driver chip is not active.

It's just the way it is on IIC.