Give the same spacing to three symbols

The spacing between symbols depends on their classes. You can check the default classes in General Symbols - Typst Documentation.
In your case, square and diamond.medium are normal, but circle is binary. Therefore, the spacing between them varies.
Refer to Can I fix the ugly spacing with `union/inter.big`? - #2 by Y.D.X for the details.

To make the spacing consistent, you can #let circle = $class("normal", circle)$ to override the default class.

= Before
$
  prec.eq square circle diamond.medium prec.eq \
  prec.eq circle diamond.medium square prec.eq \
  prec.eq diamond.medium square circle prec.eq
$

= After
#let circle = $class("normal", circle)$
$
  prec.eq square circle diamond.medium prec.eq \
  prec.eq circle diamond.medium square prec.eq \
  prec.eq diamond.medium square circle prec.eq
$