Say your two trees are of size m and n, respectively. Your proposed solution works in time Θ(n log(m)) (or the other way around). You can actually do this in time Θ(m + n).
Let's start with a related problem. Suppose you have two lists, each of them sorted, of size m and n respectively. You can easily find the number of common elements in Θ(m + n). Simply place two "pointers", one per list. by comparing the two items, you can figure out if to increment the first pointer, the second one, or both (the last case being when identical elements were found). (Edit - you can see this in the answer to this question.)
In-order traversal of a BST is conceptually the same as traversal of a sorted linked list, so you can do the same here.