ERROR: (gcloud.compute.disks.resize) Could not fetch resource: - Invalid value for field 'sizeGb': '2000'. New disk size '2000' GiB must be larger than existing size '3000' GiB.Yes, you are correct. As per the same document, and this gcloud reference document, you can only resize up. Thus, reducing the size of the disk is not possible. Furthermore, trying to create a smaller disk from a snapshot of the existing disk is also not possible. The only way that you can reduce the size of a disk is through creating a new one with the desired size, and copy over your data ( e.g block by block). I found this stackoverflow post that may help.
As for cost concerns, and as per this document, standard provisioned persistent disk space can start from $0.040/GB/month (US), and the maximum cost is in Sao Paulo $0.060/GB/Month, and equivalent to $60/TB/Month. While the cost of a regional standard provisioned disk space can be up to $0.104/GB/month (Tokyo), and that's $104/TB/Month. However, this is prorated “based on a granularity of seconds”.
As per the same document “based off US pricing, a 200 GB standard persistent disk volume would cost $8.00 for the whole month. If you only provisioned a 200 GB volume for half a month, it would cost $4.00.”
That said, and since it is prorated, you may start the copy-over as to reduce the cost ( e.g now being charged $2/TB/day if standard in Sao Paulo).
I hope this helps, and sorry about the confusion.