Is there any good practice to cluster 3D data array? So I'm not sure what word fits best to describe this data, probably "dimension" would be wrong since it may be used for flat samples with 3 features;

but by 3D data I mean some structure in a form of [samples, timesteps, features]. And there are 2 features in each timestamp.

It looks like [ [ [1,2], [3,4] ], [ [5,6], [7,8] ] ], like an LSTM input.
[1,2] is a timestep and [[1,2],[3,4]] is a sample.

So one way is to just flatten out timesteps and make them into a 1D array. However is there any better way that would somehow utilize the information conducted by "grouping" of features inside a timestamp?

Also how do I properly describe this data structure?
Given that allmpst all clustering algorithms assume data is unordered, reshaping the data into some n*p format ist indeed appropriate. If you want to take positions into account, you'll have to encode them as additional features (which can prove to be tricky because of scaling and feature weighting).

But don't treat clustering as a black box. You may have some particular goal in mind, and adequately preparing the data is a must for clustering. Consider k-means: it searches a least-squares appropximation. It's you job to prepare the data in a way that least-squares on these features is useful.