You can do:

```
sage: M = CartesianProduct(M1, M1, M2)
sage: M
Cartesian product of Full MatrixSpace of 1 by 1 dense matrices over Rational Field, Full MatrixSpace of 1 by 1 dense matrices over Rational Field, Full MatrixSpace of 2 by 2 dense matrices over Rational Field
```

But then you will lose the algebra structure:

```
sage: M.category()
Category of enumerated sets
sage: M1.category()
Category of algebras over Rational Field
```

It should be possible to keep this structure by doing something like:

```
sage: M1.cartesian_product(M1,M2)
```

But then you will get an

```
AttributeError: type object 'MatrixSpace' has no attribute 'CartesianProduct'
```