Z% for x in 1 2 3 4 5 6 7
for> do echo $x ; done | split --lines=3 \
pipe> && for x in x?? ; do echo "=== $x" ; cat $x ; done
=== xaa
1
2
3
=== xab
4
5
6
=== xac
7

In some applications, you would like split to more evenly apportion the output to the files, like this:

Z% for x in 1 2 3 4 5 6 7
for> do echo $x ; done | split --balanced --lines=3 \
pipe> && for x in x?? ; do echo "=== $x" ; cat $x ; done
=== xaa
1
2
3
=== xab
4
5
=== xac
6
7