The SP3 i7 500GB will read and write to the SanDisk 400GB Micro SD Card. However, it shows 366GB of space instead of 400GB.
First off, if you look at the Hard drive space on your SP3 you will note that it also does not show 500GB as the size but more accurately shows as ~451 GB, in reality you may actually see more like 465, or a little more. (Source: Official Microsoft Surface Pro 3 Hard Drive Space).
Here's why: Hard drive and memory card manufacturers (for the majority) state memory as 1GB=1000 MB or 1 billion bytes. However, a computer reads GB as 1024 MB's. So, when you are looking to buy storage, to find the space the computer will report to you, take the advertised space, in your case 400gb, times 1000x1000x1000, or 1 billion. Now take this total and divide it by what the computer read as a gb which is 1024*1024*1024 or 1,073,741,824. So 400GB space in human terms is actually about 372.52. The remainder of the space difference you see is hidden files space being utilized for the NTFS or FAT system, and various other system files, and this is usually kept in a hidden partition, so you won't actually see that in file manager either, but can find it if you use a 3rd party file manager, (which to keep from advertising I will not make a recommendation on one here).
As to why a computer has a different reasoning for the bytes in comparison to humans: a byte = 8 bits each bit only able to contain 1 of 2 numbers, 0 or 1. So memory is computed at 2 to the power of n. In the case of a Gigabyte, it's 2 to the power of 30, or 1,073,741,824. While in human terms Giga means billion. This means in reality the available space to you on the 400gb card is actually in human terms is 392.99GB (366*1024*1024*1024/1000/1000/1000).
Hope this is understandable to you. There are various places you can verify this information at via a Google or Bing search as well, and if you check they can even give you pointers on getting more memory out of your card as well, which may also be utilizing a shadow file.