The airbag signal is connected to all crash safety devices, like the airbag(s) explosive charge, the airbag controller, seat occupancy sensor on both front seats, and the seat-belt-tensioner (located inside the seat-belt lock.)
Latter sensors probably have connectors right under both seats. These connectors often corrode over the years, so the controller may detect erroneously a malfunction of the tensioner, or the seat occupancy sensor .
So try to unplug / plug these connectors several times, ignition off, please, or use Deoxit spray.
Frank
PS: Just scanned through several German BMW forums, this seems to be a typical problem of the E36 and E46.
Either caused by the occupancy sensor of the co-drivers seat (can be temporarily cleared in error memory), or the connector is bad.