Hey servus,
Vieles wurde hier schon genannt ,denn beim E46 mit M43 ist eine kalte Heizung trotz korrektem Kühlmittelstand meistens ein Thema im Kühl bzw. Heizkreislauf und eher selten etwas Dramatisches. Zuerst würde ich prüfen, ob der Motor überhaupt richtig auf Betriebstemperatur kommt, da ein offen hängendes Thermostat beim E46 sehr häufig ist und dann kaum Heizleistung ankommt. Wird der Motor warm, bleibt die Heizung aber kalt, ist Luft im System ein Klassiker ,korrekt entlüften ist hier extrem wichtig. Ebenfalls sehr häufig ist ein zugesetzter Heizungswärmetauscher; typisch wäre dann, dass ein Heizschlauch heiß und der andere deutlich kühler ist, der lässt sich oft auch rückspülen. Zusätzlich sollte man das Heizungsventil (Duoventil) prüfen, da ein klemmendes Ventil den Durchfluss komplett blockieren kann. Sind beide Heizschläuche heiß, im Innenraum kommt aber trotzdem nichts an, liegt es eher an der Heizungsregelung bzw. den Klappen bzw Stellmotoren. Erst wenn all das ausgeschlossen ist, würde ich Richtung Wasserpumpe oder generelle Zirkulationsprobleme weiter suchen.