Let $V = \mathbb R^6.$
Let $W_1$ be the subspace of $V$ spanned by $$\left ( 1,2,3,4,5,6 \right ) ,\space \left ( 3,4,6,7,9,10 \right ) ,\space \left ( 0,1,0,2,0,3 \right ),\space\left ( 1,-2,3,-4,5,-6 \right ). $$
Let $W_2$ be the subspace of $V$ spanned by $$\left ( 1,1,1,2,2,3 \right ) ,\space \left ( -2,0,-1,0,1,2 \right ) ,\space \left ( 1,0,1,0,2,0 \right ),\space\left ( 0,0,1,0,-2,-2 \right ).$$
Find the dimension of the subspace $W_1\cap W_2$ and find a basis for this subspace.
I know I could take $\forall x=\left ( a,b,c,d,e,f \right ) \in W_1\cap W_2$ $$x=\alpha _1\left ( 1,2,3,4,5,6 \right ) +\space \alpha _2\left ( 3,4,6,7,9,10 \right ) +\space \alpha _3\left ( 0,1,0,2,0,3 \right )+\space\alpha_4 \left ( 1,-2,3,-4,5,-6 \right ) $$
and
$$x=\beta_1 \left ( 1,1,1,2,2,3 \right ) +\space \beta _2\left ( -2,0,-1,0,1,2 \right ) +\space \beta_3\left ( 1,0,1,0,2,0 \right )+\space\beta _4\left ( 0,0,1,0,-2,-2 \right ).$$
Then
$$\begin{bmatrix} 1& 3& 0& 1& a\\ 2& 4& 1& -2& b\\ 3& 6& 0& 3& c\\ 4& 7& 2& -4& d\\ 5& 9& 0& 5& e\\ 6& 10& 3& -6&f\end{bmatrix} \text{and} \begin{bmatrix} 1& -2& 1& 0& a\\ 1& 0& 0& 0& b\\ 1& -1& 1& 1& c\\ 2& 0& 0& 0& d\\ 2& 1& 2& -2& e\\ 3& 2& 0& -2&f\end{bmatrix}.$$
Then takes so much (tedious) effort to get
$$\begin{bmatrix} 1& 3& 0& 1& a\\ 0& 0& 1& -4& b-\frac{2}{3}c \\ 0& 1& 0& 0& a-\frac{1}{3}c \\ 0& 0& 0& 0& a-2b-\frac{1}{3}c+d \\ 0& 0& 0& 0& a-2c+e\\ 0& 0& 0& 0&2a-3b-\frac{2}{3}c+f\end{bmatrix} \text{and} \begin{bmatrix} 1& -2& 1& 0& a\\ 0& 0& -1& -2& b+a-2c \\ 0& 1& 0& 1& c-a \\ 0& 0& 0& 0& d-2b \\ 0& 0& 0& 0& 4e-2a-6c-7f+21b\\ 0& 0& 0& 1&\frac{-1}{4}f-\frac{1}{2}a+\frac{1}{2}c+\frac{3}{4}b \end{bmatrix}.$$
So $\forall x=\left ( a,b,c,d,e,f \right ) \in W_1\cap W_2$, we have
\begin{align} a -2b-\frac{1}{3}c+d &=0 \\ a-2c+e &= 0 \\ 2a-3b-\frac{2}{3}c +f &=0 \\ 4e-2a-6c-7f+21b &=0 \\ d-2b &=0 \end{align}
Finally, we get $$x=\left ( e,f,3e,2f,5e,3f \right ) $$ so $$\left \{ \left (1,0,3,0,5,0 \right ) ,\space \left (0,1,0,2,0,3 \right ) \right \} $$ is a basis for $W_1\cap W_2$.
Is there any efficient way to accomplish this?
You can use the Zaassenhaus algorithm.
Note: it is very similar to what you did, just organized in a different presentation.
If $A$ and $B$ are the representive matrices for $W_1$ and $W_2$ where the vectors are disposed in ROWS (not in columns).
Then construct the following matrix $\begin{pmatrix}A & A\\B & 0\end{pmatrix}$ and reduce it to echelon form by only rows operations to $\begin{pmatrix}T_+ & *\\0 & T_\cap\end{pmatrix}$ (where $T_i$ are "upper triangular", I put quotes because in case of rectangular matrices it is a bit of a language abuse).
Then the rows of $T_+$ form a basis for $W_1+W_2$ and the rows of $T_\cap$ a basis for $W_1\cap W_2$.
Let see what we get in our case, the initial matrix :
$\begin{bmatrix} 1 & 2 & 3 & 4 & 5 & 6 & 1 & 2 & 3 & 4 & 5 & 6 \\ 3 & 4 & 6 & 7 & 9 & 10 & 3 & 4 & 6 & 7 & 9 & 10 \\ 0 & 1 & 0 & 2 & 0 & 3 & 0 & 1 & 0 & 2 & 0 & 3 \\ 1 & -2 & 3 & -4 & 5 & -6 & 1 & -2 & 3 & -4 & 5 & -6 \\ 1 & 1 & 1 & 2 & 2 & 3 & 0 & 0 & 0 & 0 & 0 & 0 \\ -2 & 0 & -1 & 0 & 1 & 2 & 0 & 0 & 0 & 0 & 0 & 0 \\ 1 & 0 & 1 & 0 & 2 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & -2 & -2 & 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}$
We clear first column by performing $-3r_1,-r_1,-r_1,+2r_1,-r_1$ on the non zero entries ($r_1$ is the first row), then iterate on the second column and so on.
I jump to the result using an online tool (https://planetcalc.com/8328/) with the entry below (if you want to see the detailed steps)
The resulting matrix is this one :
$\begin{bmatrix} 1&0&0&0&0&-\frac27&|&0&0&0&0&0&0\\ 0&1&0&0&0&\frac57&|&0&0&-6&-2&-12&-4\\ 0&0&1&0&0&-\frac67&|&0&0&0&0&0&0\\ 0&0&0&1&0&\frac87&|&0&0&3&1&6&2\\ 0&0&0&0&1&\frac47&|&0&0&0&0&0&0\\\hline 0&0&0&0&0&0&|&1&0&3&0&5&0\\ 0&0&0&0&0&0&|&0&1&0&2&0&3\\ 0&0&0&0&0&0&|&0&0&0&0&0&0 \end{bmatrix}$
Where you can identify $(1,0,3,0,5,0)$ and $(0,1,0,2,0,3)$ as a basis of $W_1\cap W_2$.
Note: the online tool does use fractions, but manually you are not forced to. You can just do $3r_i-5r_j$ for instance when it's convenient. Also the upper part represented by $*$ is not needed you can just ignore these terms entirely in your calculation, resulting in massive speed up. Also doing this you will arrive to multiples like $(0,3,0,6,0,9)$ for instance, but you can always divide by the gcd to tidy up things.