Every elementary row operation corresponds to left multiplication by an invertible matrix while every elementary column operation corresponds to right multiplication by an invertible matrix. Thus, if you started with a matrix $A$ and after $k$ elementary row operations and $\ell$ elementary column operations, you obtain a matrix $B$, then
$$B = E_1 \cdots E_k A F_1 \cdots F_\ell$$
where each $E_j$ is an elementary row operation and each $F_j$ is an elemtnatary column operation. Multiplying by an invertible matrix doesn't change the rank, so $B$ has the same rank as $A$.
In your particular example, this does indeed imply that the rank is $3$.
See this article for more detail.
Finding the nullspace is in my opinion easier, because it amounts to solving an equation. More precisely, since the nullspace is the set of all vectors $x$ that the operation represented by matrix $A$ sends to the vector $0$, then you have the equation :
$$ x \in N(A) \Leftrightarrow Ax = 0 $$
Here your example is pretty simple because if you write this, with $x = \begin{pmatrix}a\\b\\c\end{pmatrix}$ :
$$
Ax = 0 \\
\Rightarrow \begin{cases}
3c = 0 \\
a + 2b + 3c = 0
\end{cases}
$$
You immediately see that the only solution to this is $a = -2b, c=0$, that is, all vectors multiple of $\begin{pmatrix}-2\\1\\0\end{pmatrix}$.
The column space, however, is a bit trickier. However, since it is the set of all vectors that have an antecedent by $A$, you could also write an equation on $y = \begin{pmatrix}u\\v\end{pmatrix}$:
$$
y \in C(A) \Leftrightarrow \exists x, Ax = y \\
\Rightarrow \begin{cases}
u = 3c \\
v = a + 2b + 3c
\end{cases}\\
\Rightarrow v = a + 2b + u
$$
You can then see that for any vector in $\mathbb{R}^2$ you can find a corresponding vector $x$, which means that the columnspace of $A$ is $\mathbb{R}^2$.
The only thing to be very careful about is the dimensions of your vector : the null space is in $\mathbb{R}^3$ because your matrix has 3 columns, the columnspace is in $\mathbb{R}^2$ because your matrix has 2 rows.
Best Answer
Because $B$ is invertible, we find that $$ DB^{-1} = \pmatrix{B\\C}B^{-1} = \pmatrix{BB^{-1}\\ CB^{-1}} = \pmatrix{I\\CB^{-1}}. $$ We note that $[DB^{-1}]^T = B^{-T}D^T$ has the same nullspace as $D^T$. Thus, it suffices to find the nullspace of $$ [DB^{-1}]^T = \pmatrix{I & [CB^{-1}]^T} = \pmatrix{I & B^{-T}C^T} $$ We note that for $x \in \Bbb R^n$ and $y \in \Bbb R^k$, the block-vector $(x,y)$ is an element of the nullspace iff $$ \pmatrix{I & B^{-T}C^T} \pmatrix{x\\y} = 0 \implies x = -B^{-T}C^T y. $$ We can now obtain the desired basis as follows:
With that, the vectors $v_1,\dots,v_k$ give the basis that we're looking for.
If $C$ has full row-rank, then this gets even easier: the columns of the matrix $$ \pmatrix{B^{-T}C^{T} \\ -I} $$ form a basis for the nullspace of $D^T$.