STM32F103C8T6 - I2C communication with TI FuelGauge BQ78350
Your signal does't look clean and it's probably the reason you are having problem.

It is probably related to your mosfet drive, and maybe some capacitance on the line.

For I2C, you don't need level shift. 

As for a 5V chip, the threshold for a logic "1" will be lower than the 3.3V, so you simply need to put your pull-up resistor to 3V3, as both IC controlling the I2C lines should be open drain control, your SDA/SCK line will never go above 3V3.

So remove all level shift mosfet, and connect your pullup to 3V3. You can also decrease the pullup to 1k to have quicker edge.