Any prime is irreducible

Notice that your proof assumes that $\rm\: b\ne 0\ \Rightarrow\ b\:$ is cancellable, so it fails if $\rm\:b\:$ is a zero-divisor. Factorization theory is more complicated in non-domains. Basic notions such as associate and irreducible bifurcate into a few inequivalent notions. See for example

When are Associates Unit Multiples?
D.D. Anderson, M. Axtell, S.J. Forman, and Joe Stickles.
Rocky Mountain J. Math. Volume 34, Number 3 (2004), 811-828.

Factorization in Commutative Rings with Zero-divisors.
D.D. Anderson, Silvia Valdes-Leon.
Rocky Mountain J. Math. Volume 28, Number 2 (1996), 439-480


If you choose the definition of $a$ is irreducible if $a=bc$ implies that $(a)=(b)$ or $(a)=(c)$ then it is true actually. For instance the proof is as follows:

Let $p\in R$ be a non-zero, non-unit. Suppose $p=bc$. We clearly have $b\mid p$ and $c \mid p$ since $b$ and $c$ are factors of $p$. On the other hand, $1\cdot p=bc$ implies that $p \mid bc$ and $p$ being prime implies $p \mid b$ or $p \mid c$. Thus $(p)=(b)$ or $(p)=(c)$ showing $p$ is irreducible by this definition.

Unfortunately, prime is quite different than any of the other possible definitions of irreducible when zero-divisors are present that I am familiar with. The definition above is the weakest choice for irreducible that I am aware of.