Can I do without I²C pull-up resistors?
I²C requires pullups on the data and clock lines.  How you provide those pullups is up to you.

Pullups should be in the region of 3.3KΩ, but the exact value isn't that important as long as it's somewhere around there.

You can use the internal pullups of the MCU if, and only if, you have a very few (one or two) items on the I²C bus, and the bus length is very short (a matter of a few inches).

You should also ensure, in that situation, that the bus is not going to be picking up too much interference, as the noise rejection of the weaker pullups will be worse.  Ensure that any tracks that cross your bus do so at 90° to reduce noise induction.  Provide a ground trace or pour between the clock and data lines to help reduce cross-talk between the clock and data lines.

That said, two resistors isn't really a big expense...!  0402 or 0603 resistors take almost no room.  I'd stick to using proper pullups.